public class code1 {

    // 牛客 top101 比较版本号

    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 比较版本号
     * @param version1 string字符串
     * @param version2 string字符串
     * @return int整型
     */
    public int compare (String version1, String version2) {
        // write code here
        // 观察题目，这里对于版本号的判断有很多规则
        // 所以这里需要进行多次的分类讨论
        // 因为这里的 String 对象中很多信息都是通过 . 来进行分隔的，这里通过 split 方法来进行分割操作
        String[] ver1 = version1.split("\\.");
        String[] ver2 = version2.split("\\.");

        // 定义一个标记，记录当前已经比较过的长度
        int flag = 0;

        // 首先，针对两拆分出来的数据，先根据数组中相同长度的部分进行对比比较
        while(flag < ver1.length && flag <ver2.length) {
            int num1 = Integer.parseInt(ver1[flag]);
            int num2 = Integer.parseInt(ver2[flag]);

            if(num1 > num2) {
                return 1;
            }
            if(num1 < num2) {
                return -1;
            }
            // 判断过每一组数据后，直接将计数器++
            flag++;
        }

        // 完成上面两部分笼统的判读后，针对可能出现的两数组各自长出的数组进行判断
        // 先来针对第一个数组进行分析
        while(flag < ver1.length) {
            int num1 = Integer.parseInt(ver1[flag]);
            // 这就说明在这个点位之前版本号都是相同的，但是 v1 多出来了一部分(也就是版本号更高了一点)
            if(num1 > 0){
                return 1;
            }
            flag++;
        }

        while(flag < ver2.length) {
            int num2 = Integer.parseInt(ver2[flag]);
            if(num2 > 0) {
                return 1;
            }
            flag++;
        }

        // 在排除完上面的所有情况后，说明两个的版本号是完全相同的，这里直接返回 0
        return 0;
    }
}
